The invention generally relates computer systems and computer executed methods, and more specifically to profile-based optimizations of Extensible Stylesheet Language Transformations (XSLT) transformations.
In general, XSLT is a language for transforming XML documents into XHTML documents (or any other text file or document) and XPath is a language for navigating in XML documents. XSLT is used to transform an XML document into another XML document, or another type of document that is recognized by a browser, like HTML and XHTML. Normally, XSLT does this by transforming each XML element into an (X)HTML element. XSLT uses XPath to find information in an XML document. XPath is used to navigate through elements and attributes in XML documents. In a transformation process, XSLT uses XPath to define parts of the source document that should match one or more predefined templates. When a match is found, XSLT will transform the matching part of the source document into the result document.
With input data sets growing faster than computing resources, there is a large demand to improve the runtime performance of these transformations by XSLT code optimizations. However, up until now, a developer had to look at a profiling report manually and figure out ways to potentially rewrite the XSLT instructions or the XPath expressions used therein to speed up the execution.